<?php
/************************ INICIO DE ARCHIVO DE CONFIGURACIONES *******************************/
	include("config.inc2.php"); //archivo de configuraciones
	include("function_usuario.php"); //archivo del modulo de usuario
	include("function_no_proyecto.php");
	include("function_perfil.php"); //archivo sub-modulo perfiles
	include("function_subcomision.php");
	include("function_areas.php");
	include("function_entev.php");
	include("function_entef.php");
	include("function_entec.php");
	include("function_reuniones.php");
	include("function_documento.php");
	include("function_oficio.php");
	include("function_proyecto.php");
/**************************FIN DE ARCHIVO DE CONFIGURACIONES ********************************/

/***************************** INICIO DE BASES DE DATOS ************************************/

	/****************************************************************************
	Descripcion: FUNCION ENCARGADA PARA CONECTARSE A LA BD DEL SISTEMA
	****************************************************************************/
	$result="";
	function conectar() /*usada*/
	{
		global $nombre_base_datos,$passwordc,$usuario_db, $servidor,$port,$result;
	   $result = pg_connect("host=".$servidor." port=".$port." dbname=".$nombre_base_datos." user=".$usuario_db." password=".$passwordc);
	   //$result = pg_connect("host=".$servidor." port=".$port." dbname=".$nombre_base_datos." user=".$usuario_db);
	   
		//$result = pg_connect("host=localhost port=5432 dbname=sistema_cman user=postgres password=12345678");
	   if(!$result)
		{
		//echo "NO conecto";
			return $DB = 0;
			
		}
		else{
		//echo " /conecto valor de la variable $DB es igual a 1 ";
			return $DB = 1;
			
		}
	}//FIN FUNCTION
	
	/******************************************************************************
	Descripcion: FUNCION CERRAR LA CONEXION DESPUES DE CADA PROCESO
	*******************************************************************************/
	function cerrar_conexion()/*usada*/
	{
 		global $result;
		if( !empty($result)   )
 		{
 				pg_close($result);
		}
	}
	
  /************************************ FIN DE BASES DE DATOS ************************************/

  /**************************** INICIO DE FUNCIONES GENERALES ************************************/

	/************************************************************
	Descripcion: FUNCION ENCARGADA DE RECIBIR LOS VALORES VIA GET P POST
	*************************************************************/
	function getvar($name)
	{
		global $_GET, $_POST;
		if (isset($_GET[$name])) return $_GET[$name];
		else if (isset($_POST[$name])) return $_POST[$name];
		else return false;
	}//FIN FUNCTION
	
	/************************************************************
	Descripcion: FUNCION ENCARGADA DE LIMPIAR DE CARACTERES ESPECIALES
	*************************************************************/
	function ecesp_v01($str)/*usada*/
	{
		$str2="";
		$str2=stripcslashes($str);
		$str2=str_replace("\n","", $str );
		$str2=str_replace("\t","", $str2);
		$str2=str_replace("\r","", $str2);
		$str2=str_replace("/","", $str2 );
		$str2=str_replace("'","", $str2 );
		$str2=str_replace("\"","", $str2);
		$str2=trim($str2);
	
		return  $str2;
	}
	
	/************************************************************
	Descripcion: FUNCION ENCARGADA DE EJECUTAR INSTRUCIONES DE SQL
	*************************************************************/
	function ejecutar($sql)/*usada*/
	{
		$dBD = conectar();
		if($dBD == 1)
		{
			$result_sql = pg_query($sql);
			return $result_sql;
		}
	}//FIN FUNCTION
	
	/************************************************************
	Descripcion: FUNCION ENCARGADA DE VALIDAR ENTRADAS DE INJECTION SQL
	*************************************************************/
	function verificar($text)
	{
		$array_login = array(' OR ', ' AND ', ' SELECT ', ' INSERT ', ' UPDATE ', ' FROM ',' DROP ', ' DELETE ', ' UNION ', ' HAVING ', ' LIKE ',' SET ',' xp_ ', ' BETWEEN ', ' COUNT ', ' ', ' @ ', ' % ', ' = ', ' * ', ' | ', ' & ', ' < ', ' > ', ' -- ', ' # ',' . ', ' + ', ' ; ', ' ( ',' ) ', ' _ ',' [ ',' ] ', ' / ',' " ', ' \" '," ' ");
		$text = trim(strtoupper($text));
		
		for($i=0; $i<count($array_login);$i++)
		{
			if(strstr($text, $array_login[$i]))
				return false;
			else
				return true;
				break;
		}
	}//FIN FUNCTION
	
	/************************************************************************
	Descripcion: COLOCAR LA FECHA EN FORMATO DE BD Y-M-D (YYYY-MM-DD)
	*************************************************************************/
	function volteafecha($fecha)
	{ 
		return(substr($fecha, 6, 4)."-".substr($fecha, 3, 2)."-".substr($fecha, 0, 2));
	}//FIN FUNCTION
	
	/************************************************************************
	Descripcion: COLOCAR LA FECHA EN FORMATO DE BD Y-M-D (DD-MM-YYYY)
	*************************************************************************/
	function volteafch_2($fecha)
	{ 
		return(substr($fecha, 8, 2)."-".substr($fecha, 5, 2)."-".substr($fecha, 0, 4));
	}//FIN FUNCTION
	
	/************************************************************
	Descripcion: FUNCION PARA CREAR LOS SELECT SEGUN LOS VALORES QUE ESTE DENTRO BD
	*************************************************************/

	function cargar_select($nombre_select, $nombre_tabla, $seleccion = 0, $diseb = 0, $tipo = 0, $nombre_campo, $activo = 0, $nomb_option = "[...]", $where = "", $evento = "")
	{
		$str="";
		if($diseb == 1)$dis="disabled";

		$str= "<select name='$nombre_select' class='letra_combo' id='$nombre_select' $dis $evento>";
		$str.="<option value=0 selected>$nomb_option</option>";
			if ($activo == 0){
				$sql_select = "SELECT id, $nombre_campo FROM $nombre_tabla ORDER BY $nombre_campo ";
			}else{
				$sql_select = "SELECT id, $nombre_campo FROM $nombre_tabla where activo ='true' $where ORDER BY $nombre_campo ";
			}

			$result_select = ejecutar($sql_select);
			if ($result_select > 0)
			{
				while($row_select = pg_fetch_array($result_select))
				{ 
					$str.="<option value=".$row_select['id']." ";
	
					if($seleccion == $row_select['id'])
						$str.=" selected ";
					$str.=" > ".$row_select[$nombre_campo]."</option>";
				}
			}
		$str.= "</select>";
		if($tipo==0)
			echo $str;
		else
			return  $str;
	}//FIN FUNCTION
	

	

	/************************************************************
	Descripcion: FUNCION DE COMPARAR FECHAS
	*************************************************************/
	function compara_fechas($fecha1,$fecha2)
	{
		if (preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha1))
			list($dia1,$mes1,$aÃ±o1)=split("/",$fecha1);
		if (preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha1))
			list($dia1,$mes1,$aÃ±o1)=split("-",$fecha1);
		if (preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha2))
			list($dia2,$mes2,$aÃ±o2)=split("/",$fecha2);
		if (preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha2))
			list($dia2,$mes2,$aÃ±o2)=split("-",$fecha2);
		$dif = mktime(0,0,0,$mes1,$dia1,$aÃ±o1) - mktime(0,0,0, $mes2,$dia2,$aÃ±o2);
		return ($dif);
	}
	
	/************************************************************
	Descripcion: FUNCION PARA SABER QUE AÑOS ES BISIESTO
	*************************************************************/
	function bisiesto($ano)
	{
		if(!checkdate(02,29,$ano))
		{
			return false;
		}
		else{
			return true;
		}
	}
	
	/************************************************************
	Descripcion: FUNCION PERMITE VER CUALQUIER ARRAY DE FORMA ORDENADA
	*************************************************************/
	function ver_array($array,$aling="left")
	{
		echo"<div aling=$aling><pre>";
		print_r($array);
		echo"</pre></div>";
	}
	
	/************************************************************
	Descripcion: FUNCION PERMITE VER CUALQUIER ARRAY DE FORMA ORDENADA
	*************************************************************/
	function valor_ip()
	{
		# http://www.lawebdelprogramador.com
		# codigo que intenta mostrar la IP local, IP pública, la IP del proxy y el hostname de la IP pública
		if($_SERVER["HTTP_X_FORWARDED_FOR"])
		{
			if($pos=strpos($_SERVER["HTTP_X_FORWARDED_FOR"]," "))
			{
				/*echo "IP local: ".substr($_SERVER["HTTP_X_FORWARDED_FOR"],0,$pos)." - IP Pública: ".substr($_SERVER["HTTP_X_FORWARDED_FOR"],$pos+1);*/
				$hostlocal=substr($_SERVER["HTTP_X_FORWARDED_FOR"],$pos+1);
			}
			else{
				$hostlocal=$_SERVER["HTTP_X_FORWARDED_FOR"];
			}
			if($_SERVER["REMOTE_ADDR"])
				$_SERVER["REMOTE_ADDR"];
		}else{
			$hostlocal=$_SERVER["REMOTE_ADDR"];
			if($hostlocal!=$_SERVER["REMOTE_ADDR"])
				$hostlocal;
		}
		$hostname=gethostbyaddr($hostlocal);
		return $hostlocal;
	}
	
	/************************************************************
	Descripcion: FUNTION PARA AUDITORIA
	*************************************************************/
	function auditoria( $id_usuario, $sql, $analisis ="")
	{
		$fecha = date('Y-m-d'); // FECHA ACTUAL
		$hora  = date('H:i:s'); // HORA ACTUAL
		$ip    = valor_ip();// valor de la ip de la maquina 
		$sql_1 = addcslashes($sql,"'");

		$sql_auditoria = "INSERT INTO sys_auditoria (id_usuario, query, ip, analisis, fecha, hora) VALUES (".$id_usuario.", '".$sql_1."', '".$ip."' , '".$analisis."', '".$fecha."', '".$hora."')";	
		$rs_auditoria = ejecutar($sql_auditoria);
	}

	/************************************************************
	Descripcion: saber quien ingresa al sistema
	*************************************************************/
	function ingreso_sistema($id_session, $id_user)
	{	
		$ip = valor_ip();// valor de la ip de la maquina 

		$sql_ingreso = "UPDATE sys_usuario SET id_session='".$id_session."', ip = '".$ip."' WHERE id = ".$id_user." AND activo = 'true'";
		$res_ingreso = ejecutar($sql_ingreso);
	}

/******************************** FIN DE FUNCIONES GENERALES ************************************/

/******************************INICIO FUNCTION PARA PAGINACION **********************************/

	/************************************************************
	Descripcion: FUNCION PARA PAGINAR LA INFORMACION
	*************************************************************/
	function paginar($pagina, $condicion='')
	{ 
		echo "<td width='200px' style='border:0px solid;'>TOTAL DE REGISTROS: <b>".$_SESSION['num_total_registros']."</b></td>";

		if(($_SESSION['num_pag'] > 1)&&($_SESSION['num_total_paginas']>3))
		{
			echo "<td width='30px' style='border:0px solid;'><a href='".$pagina."?pag=1&_=1".$condicion."' title='Primera Pagina'> < </a></td>";
			$anterior = $_SESSION['num_pag'] - 1;
			echo "<td width='30px' style='border:0px solid;'><a href='".$pagina."?pag=".$anterior."&_=1".$condicion."' title='Pagina Anterior'> << </a></td>";
		}

		$inicio = $_SESSION['num_pag'] - 2;

		if(($inicio + 4)>$_SESSION['num_total_paginas'])
			$inicio--;

		if($_SESSION['num_pag']==$_SESSION['num_total_paginas'])
			$inicio = $inicio - 1;

		if($inicio < 1) 
			$inicio = 1;
		
		for($i=$inicio; ($i<=$inicio + 4)&&($i<=$_SESSION['num_total_paginas']);$i++)
		{ 
			if($i == $_SESSION['num_pag'])
				echo "<td width='20px' style='border:0px solid;'><a href='".$pagina."?pag=$i&_=1".$condicion."' title='Pagina $i'><div style='font-size:18px'>$i</div> </a></td>";
			else
				echo "<td width='20px' style='border:0px solid;'><a href='".$pagina."?pag=$i&_=1".$condicion."' title='Pagina $i'>$i</a></td>";
		}
		if(($_SESSION['num_pag'] < $_SESSION['num_total_paginas'])&&($_SESSION['num_total_paginas']>3))
		{
			$siguiente = $_SESSION['num_pag'] + 1;
			echo "<td width='30px' style='border:0px solid;'><a href='".$pagina."?pag=$siguiente&_=1".$condicion."' title='Pagina Siguiente'> >> </a></td>";
			echo "<td width='30px' style='border:0px solid;'><a href='".$pagina."?pag=".$_SESSION['num_total_paginas']."&_=1".$condicion."' title='Ultima Pagina'> > </a></td>";
		}
	}

	/************************************************************
	Descripcion: INICIALIZA EL NUMERO DE PAGINA
	*************************************************************/
	function inicializar_num_pag($num_total_registros,$num_total_paginas,$num_pag)	
	{
		if( ( $num_total_registros=='') || ( $num_total_paginas=='') || ($num_pag=='') )
 			$num_pag = 1;
		return $num_pag;
	}

	/************************************************************
	Descripcion: 	INICIALIZA EL NUMERO DE PAGINA
	************************************************************/
	function inicializar_inicio($num_pag,$num_reg_pag)
	{
		 if(	$num_pag == 1)
 			return  0;
 		 else
 			return ($num_pag-1) * $num_reg_pag;
	}

/************************************ FIN FUNCTION PARA PAGINACION *****************************/

/****************************** INICIO FUNCTION PARA PAGINACION DE PRINCIPAL *********************/

	/************************************************************************************/
	// Descripción: Fecha en formato dd/mm/yyyy o dd-mm-yyyy retorna la diferencia en dias
	/**********************************************************************************/
	function restaFechas($dFecIni, $dFecFin)
	{
		$dFecIni = str_replace("-","",$dFecIni);
		$dFecIni = str_replace("/","",$dFecIni);
		$dFecFin = str_replace("-","",$dFecFin);
		$dFecFin = str_replace("/","",$dFecFin);
		
		ereg( "([0-9]{1,2})([0-9]{1,2})([0-9]{2,4})", $dFecIni, $aFecIni);
		ereg( "([0-9]{1,2})([0-9]{1,2})([0-9]{2,4})", $dFecFin, $aFecFin);
		
		$date1 = mktime(0,0,0,$aFecIni[2], $aFecIni[1], $aFecIni[3]);
		$date2 = mktime(0,0,0,$aFecFin[2], $aFecFin[1], $aFecFin[3]);
		
		return round(($date2 - $date1) / (60 * 60 * 24));
	}
	
	function quitar_acentos($nombre){
		//minusculas
		$nombre = str_replace('á', 'a', $nombre);
		$nombre = str_replace('é', 'e', $nombre);
		$nombre = str_replace('í', 'i', $nombre);
		$nombre = str_replace('ó', 'o', $nombre);
		$nombre = str_replace('ú', 'u', $nombre);
		$nombre = str_replace('ñ', 'n', $nombre);
		//mayusculas
		$nombre = str_replace('Á', 'A', $nombre);
		$nombre = str_replace('É', 'E', $nombre);
		$nombre = str_replace('Í', 'I', $nombre);
		$nombre = str_replace('Ó', 'O', $nombre);
		$nombre = str_replace('Ú', 'U', $nombre);
		$nombre = str_replace('Ñ', 'N', $nombre);

		return $nombre;
	}//FIN FUNCTION

/************************************REEMPLAZA CARACTERES RAROS EN NOMBRE ********************************/





	function replace_filename($str, $min = 0)

	{

        	$str = ereg_replace("[^a-zA-Z0-9.()]",'_',$str);

        	return ($min == 1) ? strtolower($str) : $str;

    	}

/******************** INICIO DE LA FUNCION PARA LOS MENU **********************************/
/********************** FIN DE LA FUNCION PARA BUSCAR LOS TIPOS *************************************/

	function dato_user($id_user)
	{
		$con_nom = consultar_usuario($id_user,"", "");
		$nom = str_replace(",", " ", $con_nom[0]['nombre1']);
		$ape = str_replace(",", " ", $con_nom[0]['apellido1']);
		$nom_ape = $nom." ".$ape;
		$nom_ape = str_replace(".", "", $nom_ape );
		echo mb_convert_case($nom_ape, MB_CASE_TITLE, "UTF-8");
	}


/***** INICIO DE LAS FUNCIONES DE REPORTE  *****************************************************/

	/************************************************************
	Descripcion: Buscar los usuarios para paginar
	*************************************************************/
	function buscar_usuario_linea()
	{
		//Paginacion
		global $cfg;
		$num_reg_pag = $cfg['reg_x_pagina']; 
		$_SESSION['num_pag'] = inicializar_num_pag($_SESSION['num_total_registros'],$_SESSION['num_total_paginas'],$_SESSION['num_pag'] );
		$inicio = inicializar_inicio($_SESSION['num_pag'],$num_reg_pag);

		//Sql de busqueda
		$sql_busq_desa = "SELECT a.*, b.nombre as ente FROM sys_usuario AS a LEFT JOIN covih_gob_cord AS b ON a.id_ente = b.id WHERE a.cedula !=0 AND a.id_session!='vacio' ORDER BY a.id_session DESC ";
		$res_busq_usua = ejecutar($sql_busq_desa);
		
		$row_busq_usua = pg_fetch_all($res_busq_usua);

		
		//Paginacion
		$_SESSION['num_total_registros'] = pg_num_rows($res_busq_usua);	//Cantidad Total de Registro - Variable de Paginacion
 		$num_pag = $_SESSION['num_total_registros'] / $num_reg_pag;	
		$num_total_pag = ceil($num_pag);
		$_SESSION['num_total_paginas'] = $num_total_pag;

		if($num_pag > $num_total_pag)
			$num_total_pag++;
		$_SESSION['num_total_paginas'] = $num_total_pag;

		if(count($row_busq_usua)>0)
		{
			for ($i=$inicio; ($i<$inicio+$num_reg_pag)&&($i<$_SESSION['num_total_registros']); $i++)
			{
				$id_usua = $row_busq_usua[$i]['id'];
				$ente    = $row_busq_usua[$i]['ente'];
				$ip      = $row_busq_usua[$i]['ip'];
				echo "
				<tr id='".($i+1)."' class='tr_fila'>
					<td class='centerAlign'>".($i+1)."</td>
					<td>".$row_busq_usua[$i]['nacionalidad']." - ".$row_busq_usua[$i]['cedula']."</td>
					<td>".$row_busq_usua[$i]['nombres'].". ".$row_busq_usua[$i]['apellidos']."</a></td>
					<td>".$row_busq_usua[$i]['login']."</td>
					<td>".$ente."</td>
					<td>".$ip."</td>
				</tr>
				";
			}
			return $row_busq_usua;
		}
	}

/******************************************************************************************
Descripcion: Menu segundario para otras paginas
******************************************************************************************/
function menu_otro($id_perfil,$path="../")
{?> 
      <!-- archivo de estilos para este menu: <a href="../js/dropdowntabfiles/slidingdoors.css"></a>-->
      <div id="slidemenu" class="slidetabsmenu">
      <ul>
            <li>
            <a href="#" title="Administracion de Usuario" rel="dropmenu1_c" style="width:140px;"><span>ADM. DE USUARIO</span></a>
            </li>
            <li>
            <a href="#" title="Administracion de Sistema" rel="dropmenu2_c" style="width:140px;"><span>ADM. DE SISTEMA</span></a>
            </li>
            <li>
            <a href="#" title="Cargar" rel="dropmenu3_c" style="width:82px;"><span>SOLICITUD</span></a>
            </li>
            <li>
            <a href="#" title="Cargar" rel="dropmenu4_c" style="width:80px;"><span>CONTRATO</span></a>
            </li>
            <li>
            <a href="#" title="Cargar" rel="dropmenu5_c" style="width:145px;"><span>PORCENTAJE DE CRS</span></a>
            </li>
            <li>
            <a href="#" title="Reportes" rel="dropmenu6_c" style="width:82px;"><span>REPORTES</span></a>
            </li>
      </ul>
      </div>

      <br style="clear: left;" />
      <br class="IEonlybr" />

      <!--Menu 1-->
      <div id="dropmenu1_c" class="dropmenudiv_c" style="width: 140px;">
            <a href="<?php echo $path; ?>seguridad/index.php">Usuario</a>
            <a href="<?php echo $path; ?>modulos/administracion/perfil/index.php">Perfil</a>
            <a href="<?php echo $path; ?>seguridad/cambio_clave.php">Cambiar Clave</a>
      </div>
      <!--Menu 2-->
      <div id="dropmenu2_c" class="dropmenudiv_c" style="width: 140px;">
            <a href="<?php echo $path; ?>modulos/administracion/comunidad/index.php">Comunidades</a>
            <a href="<?php echo $path; ?>modulos/administracion/departamento/index.php">Departamentos</a>
            <a href="<?php echo $path; ?>modulos/administracion/direccion_entes/index.php">Direcciones/Entes</a>
            <a href="<?php echo $path; ?>modulos/administracion/estatus_solicitud/index.php">Estatus de la Solicitud</a>
            <a href="<?php echo $path; ?>modulos/administracion/estatus_proyecto/index.php">Estatus del Proyecto</a>
            <a href="<?php echo $path; ?>modulos/administracion/tipo_solicitud/index.php">Tipo de Solicitud</a>
            <a href="<?php echo $path; ?>modulos/administracion/tipo_solicitante/index.php">Tipo de Solicitante</a>
            <a href="<?php echo $path; ?>modulos/administracion/recaudos/index.php">Recaudos</a>
            <a href="<?php echo $path; ?>modulos/administracion/variables/index.php">Variables</a>
      </div>   
      <!--Menu 3-->
      <div id="dropmenu3_c" class="dropmenudiv_c" style="width: 86px;">
            <a href="<?php echo $path; ?>modulos/solicitante/index.php">Solicitante</a>
            <a href="<?php echo $path; ?>modulos/solicitud/index.php">Solicitud</a>
      </div>
      <!--Menu 4-->
      <div id="dropmenu4_c" class="dropmenudiv_c" style="width: 85px;">
            <a href="<?php echo $path; ?>modulos/contratista/index.php">Contratista</a>
            <a href="<?php echo $path; ?>modulos/contrato/index.php">Contrato</a>
      </div>
      <!--Menu 5-->
      <div id="dropmenu5_c" class="dropmenudiv_c" style="width: 150px;">
            <a href="<?php echo $path; ?>">Aprobación de Solicitud</a>
            <a href="<?php echo $path; ?>modulos/crs/index.php">Compromiso de Responsabilidad Social</a>
            <a href="<?php echo $path; ?>modules/control/index_entrada.php">Control y Seguimiento</a>
      </div>
      <!--Menu 6-->
      <div id="dropmenu6_c" class="dropmenudiv_c" style="width: 86px;">
            <a href="<?php echo $path; ?>modulos/reportes/index.php">Manejador de Reportes</a>
      </div>      

      <script type="text/javascript">
            //SYNTAX: tabdropdown.init("menu_id", [integer OR "auto"])
            tabdropdown.init("slidemenu")
      </script>
<?php } ?>
